#ifndef _CLIENT_HANDLER_H_
#define _CLIENT_HANDLER_H_

#include "config.h"
#include "list.h"
#include <pthread.h>
#include <stdbool.h>

/* 摄像头设备管理链表 */
typedef struct s_device_mng_list
{
    list_t list;
    int    fd;              /* 摄像头 tcp 文件句柄 */
    char   deviceid[10];    /* 设备ID */
    char   bind_appid[10];  /* 对应的APP ID */
    char   status[10];      /* 状态 */
} device_mng_list_t;

/* APP管理链表 */
typedef struct s_app_mng_list
{
    list_t list;
    int    fd;                 /* APP tcp 文件句柄 */
    char   appid[10];          /* APP ID */
    char   bind_deviceid[10];  /* 对应的设备ID */
    char   status[10];         /* 状态 */
} app_mng_list_t;

typedef struct s_video_data
{
    unsigned int    size;
    unsigned int    max_size;
    char            *buf;
    pthread_mutex_t lock;
    volatile bool   isfresh;
} video_data_t;

/* 管理链表初始化 */
void mng_list_init(void);

/* 视频数据结构体初始化 */
void video_data_t_init(void);

/* 客户端连接 */
void *client_connect_handler(void *arg);

#endif
